//提示：下面的代码用jquery，所以如果有不能运行的情况请引用后尝试
//百度地图api container对应前端div名称 前端要引用2.0版本的百度地图api
//需引用api.map.baidu.com/library/AreaRestriction/1.2/src/AreaRestriction_min.js
var mapFast = new BMap.Map("containerFast"); // 创建地图实例，禁止点击地图底图
//mapFast.enableScrollWheelZoom();   //启用滚轮放大缩小，默认禁用
mapFast.disableDoubleClickZoom();//禁止双击缩放

/*mapFast.setMapStyle({
	 styleJson:[{
	        "featureType": "all",
	        "elementType": "geometry",
	        "stylers": {
	            "hue": "#007fff",
	            "saturation": 89
        }
     }, {
        "featureType": "water",
        "elementType": "all",
        "stylers": {
            "color": "#ffffff"
        }
     }]
});*/

$(function () {
	addDistrictFast("西安");
	addDistrictFast("咸阳");
	addDistrictFast("渭南");
	addDistrictFast("宝鸡");
	addDistrictFast("铜川");
	addDistrictFast("汉中");
	addDistrictFast("商洛");
	addDistrictFast("安康");
	addDistrictFast("榆林");
	addDistrictFast("延安");
});

function clickFast(evt) {
	var pt = evt.point;
	//console.log(pt);
	$("#containerFast").hide();
	$("#containerSix").show();
	
}
mapFast.addEventListener("click", clickFast);

var blistFast = [];
var districtLoadingFast = 0;

/**
* 添加行政区划
* @param {} districtName 行政区划名
* @returns  无返回值
*/
function addDistrictFast(districtName) {
	//使用计数器来控制加载过程
	districtLoadingFast++;
    var bdary = new BMap.Boundary();
    bdary.get(districtName, function (rs) {       //获取行政区域
        var count = rs.boundaries.length; //行政区域的点有多少个
        if (count === 0) {
            alert('未能获取当前输入行政区域');
            return;
        }
        for (var i = 0; i < count; i++) {
        	blistFast.push({ points: rs.boundaries[i], name: districtName });
        };
        //加载完成区域点后计数器-1
        districtLoadingFast--;
        if (districtLoadingFast == 0) {
            //全加载完成后画端点
            drawBoundaryFast();
        }
    });
}


function drawBoundaryFast() {
	//包含所有区域的点数组
    var pointArrayFast = [];
 
    /*画遮蔽层的相关方法
    *思路: 首先在中国地图最外画一圈，圈住理论上所有的中国领土，然后再将每个闭合区域合并进来，并全部连到西北角。
    *      这样就做出了一个经过多次西北角的闭合多边形*/
    //定义中国东南西北端点，作为第一层
    var pNW = { lat: 59.0, lng: 73.0 }
    var pNE = { lat: 59.0, lng: 136.0 }
    var pSE = { lat: 3.0, lng: 136.0 }
    var pSW = { lat: 3.0, lng: 73.0 }
    //向数组中添加一次闭合多边形，并将西北角再加一次作为之后画闭合区域的起点
    var pArrayFast = [];
    pArrayFast.push(pNW);
    pArrayFast.push(pSW);
    pArrayFast.push(pSE);
    pArrayFast.push(pNE);
    pArrayFast.push(pNW);
    //循环添加各闭合区域
    for (var i = 0; i < blistFast.length; i++) {
		var cityName = blistFast[i].name;
        //添加显示用标签层
        var label = new BMap.Label(blistFast[i].name, { offset: new BMap.Size(20, -10) });
        label.hide();
        //map.addOverlay(label);
 
        //添加多边形层并显示
		//添加多边形层并显示
        var ply = new BMap.Polygon(blistFast[i].points, {strokeWeight: 1, strokeColor: "#8B4513", fillOpacity: 0.01, fillColor: " #FFFFFF" }); //建立多边形覆盖物
        //var ply = new BMap.Polygon(blist[i].points, { strokeWeight: 2, strokeColor: "#FF0000", fillOpacity: 0.01, fillColor: " #FFFFFF" }); //建立多边形覆盖物
        ply.name = blistFast[i].name;
        ply.label = label;
        
        mapFast.addOverlay(ply);
 
        //添加名称标签层
        var centerlabel = new BMap.Label(blistFast[i].name, { offset: new BMap.Size(0, 0) });
        centerlabel.setPosition(ply.getBounds().getCenter());
        mapFast.addOverlay(centerlabel);
		
		
		//将点增加到视野范围内
		var path = ply.getPath();
		pointArrayFast = pointArrayFast.concat(path);
		//将闭合区域加到遮蔽层上，每次添加完后要再加一次西北角作为下次添加的起点和最后一次的终点
		pArrayFast = pArrayFast.concat(path);
		pArrayFast.push(pArrayFast[0]);
      
  }

  //限定显示区域，需要引用api库
    var boundplymapFast = new BMap.Polygon(pointArrayFast);
    BMapLib.AreaRestriction.setBounds(mapFast, boundplymapFast.getBounds());
    mapFast.setViewport(pointArrayFast);    //调整视野 
	
    //添加遮蔽层
    var plyallFast = new BMap.Polygon(pArrayFast, { strokeOpacity: 0.0000001, strokeColor: "#000000", strokeWeight: 0.00001, fillColor: "#ffffff", fillOpacity: 0.9 }); //建立多边形覆盖物
    mapFast.addOverlay(plyallFast);
}

